#pragma once

#include "path.hpp"
#include "details.hpp"

namespace easyfs
{
    class directory
    {
    public:
        directory(const path& p) : _path(p) {}
        
        void create() { create_directory(_path); }

        void remove() { easyfs::remove(_path); }

        void copy(const path& to) { easyfs::copy(_path, to); }

        void move(const path& to) { easyfs::move(_path, to); }

        bool exists() { return easyfs::exists(_path); }

        void clear() { easyfs::clear(_path); }

        std::vector<path> scan() { return scan_directory(_path); }
            
    private:
        path _path;
    };
}
